<?php

namespace app\rest\controller;

use think\Controller;
use think\Db;
use think\Request;
use app\rest\model\User as UserModel;

class User extends Controller
{
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {
//        return '列表页面';
        $list = Db::name('user')->field(['id', 'name'])->order('id', 'ASC')->select();
//        var_dump($list);
//        exit;

        return view('user/index', [
            'title' => '用户列表',
            'list' => $list
        ]);

    }


    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        return view('user/create', [
            'title' => 'add user'
        ]);
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
//        var_dump($request->post());
//        $p = input('post.');
//        $data =[
//            'name'=>$p['name'],
//            'pass'=>md5($p['pass']),
//            'sex' =>$p['sex'],
//            'province'=>$p['province'],
//            'tel' =>$p['tel'],
//            'age' =>$p['age']
//        ];
//        var_dump($data);
//
//        $result = Db::name('user')->data($data)->insert();
//
//        if ($result > 0) {
//           return $this->success('安排上了','rest/user/index');
//        } else {
//            return $this->error('添加失败','rest/user/index');
//
//        }
        $p = $request->post();

        $user = new UserModel($p);
        $user->pass = $user->setPass($p['pass']);

//        var_dump($user);
//        halt($user->pass);
        // 添加数据,并过滤非法字段
        // 返回写入数据

        // 调用验证器验证
        $check = $this->validate($p, 'rest/User');
        if (true !== $check) {
            $this->error($check);
            return;
        }

        $result = $user->allowField(true)->save();
//        echo $user->id;
        if ($result) {
            return $this->success('安排好了','rest/user/index');
        } else {
            return $this->error('添加失败','rest/user/index');

        }


    }

    /**
     * 显示指定的资源
     *
     * @param  int $id
     * @return \think\Response
     */
    public function read($id)
    {
        // 是否为Ajax请求
        if (!Request::instance()->isAjax()) {
            $this->error('你四不四迷路了?', '/');
            return false;
        }

        // 查询指定用户信息
        // 显示查询所有字段
//        return '读取ID:' . $id;
        $row = Db::name('user')->field(['pass', 'status'], true)->find($id);
//        var_dump($row);

        if ($row == null) {

            $info['status'] = false;
            $info['title'] = '查询失败';
            $info['datas'] = '查无数据,请重试';

        } else {
            $info['status'] = true;
            $info['title'] = $row['name'];
            $info['datas'] = $row;

        }
        return json($info);
    }

    // 显示指定资源(页面)
    public function readPage($id)
    {
        $row = Db::name('user')->field(['pass', 'status'], true)->find($id);

        return view('user/show', [
            'title' => $row['name'] . '的信息',
            'row' => $row
        ]);
    }


    /**
     * 显示编辑资源表单页.
     *
     * @param  int $id
     * @return \think\Response
     */
    public function edit($id)
    {
        $row = Db::name('user')->field(['pass', 'status'], true)->find($id);
        return view('user/edit',[
           'title'=>'修改'.$row['name'].'的信息',
            'data'=>$row
        ]);

    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request $request
     * @param  int $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
//        var_dump($id,$request);
        $p = $request->put();
        $data =[
            'name'=>$p['name'],
            'sex' =>$p['sex'],
            'province'=>$p['province'],
            'tel' =>$p['tel'],
            'age' =>$p['age']
        ];
//        var_dump($data);
        $result = Db::name('user')->where('id',$id)->update($data);
//        var_dump($result);
        if ($result) {
            return $this->success('安排好了','rest/user/index');
        } else {
            return $this->error('编辑失败','rest/user/index');

        }
    }

    /**
     * 删除指定资源
     *
     * @param  int $id
     * @return \think\Response
     */
    public function delete($id)
    {
        $result = Db::name('user')->delete($id);

        if ($result > 0) {
            $info['status'] = true;
            $info['id'] = $id;
            $info['info'] = 'ID为' . $id . '的用户删除成功';

        } else {
            $info['status'] = true;
            $info['id'] = $id;
            $info['info'] = '删除失败';
        }
        return json($info);
    }

    public function login()
    {
        return view('logins',['title'=>'登录']);

    }

    public function logindo()
    {
        $name = (input( 'post.name'));
        $pass = (input( 'post.pass'));
        //根据用户名获取用户数据
        $user = UserModel::get(['name'=>$name]);
//        var_dump($user);
        if ($user){
            $id = $user->id;
            if($user->checkPass($id,$pass)){
                return '登录成功';
            }else{
                return '登录失败,密码请重试';
            }
//            halt($user->id);
            // 验证用户输入的密码,
        }else{
            return '用户不存在';
        }
    }

}
